package model;


import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Despesa extends GenericModel{


	
	/**
	 * 
	 */
	private static final long serialVersionUID = -5046115221622001096L;
	
	@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column
    private Long codigo;
	@Column(length=150,nullable=false)
	private String descricao;
	@Column(length=10)
	private String numeroParcelas ="";
	@Column(nullable = false, scale = 2)
	private Float valor;
	@ManyToOne
	private Categoria categoria;
	@Temporal(TemporalType.DATE)
	private Date data;
	@ManyToOne
	private Usuario usuario;
	@OneToMany(mappedBy = "despesa",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
	private List<ParcelaDespesa> parcelasDespesa;
	
	public Long getCodigo() {
		return codigo;
	}
	public void setCodigo(Long codigo) {
		this.codigo = codigo;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public Float getValor() {
		return valor;
	}
	public void setValor(Float valor) {
		this.valor = valor;
	}
	public Categoria getCategoria() {
		return categoria;
	}
	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}
	public Date getData() {
		return data;
	}
	public void setData(Date data) {
		this.data = data;
	}

	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public List<ParcelaDespesa> getParcelasDespesa() {
		return parcelasDespesa;
	}
	public void setParcelasDespesa(List<ParcelaDespesa> parcelasDespesa) {
		this.parcelasDespesa = parcelasDespesa;
	}
	public String getNumeroParcelas() {
		return numeroParcelas;
	}
	public void setNumeroParcelas(String numeroParcelas) {
		this.numeroParcelas = numeroParcelas;
	}
	
	
	
	
	
	
	
	

}
